gpsbabel.git
18 months agoModernize Humminbird internals (#1322)
Robert Lipe [Thu, 15 Aug 2024 05:51:56 +0000 (00:51 -0500)]
Modernize Humminbird internals (#1322)

* Modernize Humminbirds internals

---------

Co-authored-by: Robert Lipe <robertlipe@gpsbabel.org>
18 months agouse implicit conversions for lat,lon degs<->rads in grtcirc interface (#1321)
tsteven4 [Tue, 13 Aug 2024 20:21:31 +0000 (14:21 -0600)]
use implicit conversions for lat,lon degs<->rads in grtcirc interface (#1321)

* use implict conversions for lat,lon degs<->rads.

* use Position* return values.

* convert grtcirc i/f to PositionDeg, PositionRad.

* fix mac compile, denote converting ctor.

* inline PositionDeg/Rad converting ctors.

* respect PosotionX encapsulation.

* differentiate member names for PositionDeg, PositiionRad.  This can catch unintended usages where the type is not what was expected.

* clean up unneccesary usage of Waypoint::position.

* delete obsolete declaration.

* spell

* update garmin include

* consistenly unpack Positions to consts in grtcirc.

* provide default initializers for PositionX.

18 months agofix bend filter usage of linepart. (#1320)
tsteven4 [Mon, 12 Aug 2024 20:24:28 +0000 (14:24 -0600)]
fix bend filter usage of linepart. (#1320)

* fix bend filter usage of linepart.

* fix new bend filter test.

* make new reference files valid kml.

* debug macos fails

* workaround rounding errors in problematic kml lookat range.

18 months agocleanup great circle. (#1318)
tsteven4 [Mon, 12 Aug 2024 13:05:53 +0000 (07:05 -0600)]
cleanup great circle. (#1318)

* cleanup great circle.

* fix whitespace

18 months agocorrect simplify filter with maximum allowable error option and the metric being...
tsteven4 [Mon, 12 Aug 2024 12:37:08 +0000 (06:37 -0600)]
correct simplify filter with maximum allowable error option and the metric being overall route length or relative error (#1316)

* add test for simplify w/ relative+error opts.

* fix simplify filter error+length operation.

* fix simplify relative+error

* remove debug statement

* simplify error unit tests and documentation.

* format parse, update includes.

* prune redundant test case

19 months agohave jeeps use std::endian (#1315)
tsteven4 [Sat, 10 Aug 2024 20:23:50 +0000 (14:23 -0600)]
have jeeps use std::endian (#1315)

* have jeeps use std::endian

* detect unsupported endian platforms.

19 months agomove floor to C++20 (#1206)
tsteven4 [Fri, 9 Aug 2024 23:02:46 +0000 (17:02 -0600)]
move floor to C++20 (#1206)

* move floor to c++20

drop Visual Studio 2017.
use default member intializers for bit-fields.

* use more bit-field default initializers

* try Xcod 14.3.1 on macOS 13.

* echo clang version

which can be useful with homebrew fails_with

* use std::numbers

* finish eradication of M_PI.

* fix some whitespace

19 months agouse constexpr for constants, match parms in declaration and definition. (#1314)
tsteven4 [Thu, 8 Aug 2024 20:33:29 +0000 (14:33 -0600)]
use constexpr for constants, match parms in declaration and definition. (#1314)

* use constexpr for constants, match parms in declaration and definition.

* increase precision of GPS_PI.

19 months agoUse Helmert transform for conversions between OSGB36 and WSG84 (#1311)
tsteven4 [Thu, 8 Aug 2024 16:07:18 +0000 (10:07 -0600)]
Use Helmert transform for conversions between OSGB36 and WSG84 (#1311)

* use Helmert transform for OSBG36 <-> WGS84.

* adjust unicsv_grids reference for Helmert xform.

* update copyright.

* use constexpr to select helmert inversion method.

* tweak helmert.

19 months agospell Datum (#1313)
tsteven4 [Wed, 7 Aug 2024 22:30:29 +0000 (16:30 -0600)]
spell Datum (#1313)

19 months agounify access to ellipsoid parameters (#1312)
tsteven4 [Wed, 7 Aug 2024 21:04:13 +0000 (15:04 -0600)]
unify access to ellipsoid parameters (#1312)

* define constants for often used spherioid parms.

* add function to calculate semi-minor axis.

* use semi major axis function more.

* have semi_minor_axis consume an ellipse

* compute semi minor axis in GPS_Ellipse class.

add constants for other ellipses that are used directly.

19 months agocorrect WGS84 semi minor axis value. (#1310)
tsteven4 [Tue, 6 Aug 2024 19:12:58 +0000 (13:12 -0600)]
correct WGS84 semi minor axis value. (#1310)

It appears the GSR80 value was used instead of the WGS84 value, which
is a very small error.
However, there was a typo in the value in GPS_Math_XYZ_To_WGS84LatLonH
that resulted in an order of magnitude error!
This could lead to GPS_Math_XYZ_To_WGS84LatLonH never converging.
This may be why skytraq created their own function to convert ECEF
to WGS84.

19 months agocleanup datetime.h tidy and g++ warnings. (#1309)
tsteven4 [Fri, 2 Aug 2024 12:43:27 +0000 (06:43 -0600)]
cleanup datetime.h tidy and g++ warnings. (#1309)

Wsign-conversion
readability-implicit-bool-conversion
readability-else-after-return
cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers

19 months agoenhance validate filter to report on track segments. (#1308)
tsteven4 [Thu, 1 Aug 2024 12:52:03 +0000 (06:52 -0600)]
enhance validate filter to report on track segments. (#1308)

19 months agouse a signed type for waypt_counts and route counts. (#1307)
tsteven4 [Tue, 30 Jul 2024 23:31:08 +0000 (17:31 -0600)]
use a signed type for waypt_counts and route counts. (#1307)

* use a signed type for waypt_counts and route counts.

Although larger in Qt6, the underlying type is signed.

* fix -Wformat-signedness warnings introduced by this PR.

* fix new -Wsign-conversion warnings.

19 months agoteach lowranceusr about track segments (#1306)
tsteven4 [Sat, 27 Jul 2024 18:02:57 +0000 (12:02 -0600)]
teach lowranceusr about track segments (#1306)

* teach lowranceusr about track segments.

lowranceusr versions 2 & 3 have a continuous flag used to
indicate dicontinuities in a trail.
The lowranceusr version 2 & 3 reader now flags trail discontinuities
as new track segements.
The lowranceusr version 2 & 3 writer now flags new track segments as
discontinuities.

Also fix two subtle bugs:
1) when reading a version 2 or 3 trail with the break option we would
fail to break the trail if the discontinuity was at the start of a
section other than the first section.
2) when writing a version 2 or 3 trail with the merge option if the
number of points exceeded MAX_TRAIL_POINTS we would write a header
that indicated MAX_TRAIL_POINTS but actually write MAX_TRAIL_POINTS + 1.

* add lowranceusr test for track segments.

19 months agoUpdate Russian translation (#1304)
OlesyaGerasimenko [Wed, 24 Jul 2024 13:37:46 +0000 (16:37 +0300)]
Update Russian translation (#1304)

* Update Russian translation

* Update Russian translation

19 months agocorrect garmin real time altitude, add geoid height. (#1303)
tsteven4 [Tue, 23 Jul 2024 20:57:25 +0000 (14:57 -0600)]
correct garmin real time altitude, add geoid height. (#1303)

19 months agocorrect computation of timestamp with garmin real time positioning. (#1302)
tsteven4 [Mon, 22 Jul 2024 19:21:05 +0000 (13:21 -0600)]
correct computation of timestamp with garmin real time positioning. (#1302)

* correct computation of timestamp with garmin real time positioning.

* tweak garmin pvt conversion

19 months agofix gpsapp copy_char_array that could leave part of a packet uninitialized. (#1301)
tsteven4 [Sat, 20 Jul 2024 17:35:52 +0000 (11:35 -0600)]
fix gpsapp copy_char_array that could leave part of a packet uninitialized. (#1301)

* fix gpsapp copy_char_array that could leave part of a packet uninitialized.

* tidy up a bit.

* delete empty statement

19 months agofix memory leaks writing garmin routes. (#1299)
tsteven4 [Sat, 20 Jul 2024 12:48:06 +0000 (06:48 -0600)]
fix memory leaks writing garmin routes. (#1299)

19 months agoenhance garmin route write for devices using 16 member icon set. (#1298)
tsteven4 [Fri, 19 Jul 2024 13:11:59 +0000 (07:11 -0600)]
enhance garmin route write for devices using 16 member icon set. (#1298)

19 months agoenhance garmin route writes for devices using D201_Rte_Hdr_Type. (#1297)
tsteven4 [Fri, 19 Jul 2024 12:52:44 +0000 (06:52 -0600)]
enhance garmin route writes for devices using D201_Rte_Hdr_Type. (#1297)

which use GPS_PWay->rte_cmnt for the route name.

19 months agodon't send links with GPS_A200_Send. (#1295)
tsteven4 [Fri, 19 Jul 2024 11:53:30 +0000 (05:53 -0600)]
don't send links with GPS_A200_Send. (#1295)

19 months agofix faulty assertion in garmin. (#1290)
tsteven4 [Sat, 13 Jul 2024 21:56:45 +0000 (15:56 -0600)]
fix faulty assertion in garmin. (#1290)

the '-' character is legal for some devices, but was
excluded in the assertions as it can be a metacharacter.

20 months agoremove qtci installer code (#1289)
tsteven4 [Mon, 1 Jul 2024 21:11:02 +0000 (15:11 -0600)]
remove qtci installer code (#1289)

* remove qtci which hasn't been used for a long time.

* remove another obsolete qtci file.

* remove another qtci reference.

* delete obsolete travis build code.

* rename osx install script

* catch ci up with osx travis install script renames.

* remove obsolete debug code from qtio installer.

20 months agoexclude qt .ts files from codacy analysis. (#1288)
tsteven4 [Sat, 29 Jun 2024 19:17:01 +0000 (13:17 -0600)]
exclude qt .ts files from codacy analysis. (#1288)

they confuse eslint which thinks they are TypeScript.

20 months agoFix unicsv reader delimiter detection (#1287)
tsteven4 [Sat, 29 Jun 2024 18:49:56 +0000 (12:49 -0600)]
Fix unicsv reader delimiter detection (#1287)

* Fix unicsv reader delimiter detection.

Any delimiter sequence that is enclosed has never been considered
a delimiter when splitting a line into fields.  However, previously
an enclosed potential delimiter could be detected when scanning the
first line, and then erroneously used as the delimiter.

* tweak auto

* add unicsv delimiter detection test

20 months agodelete obsolete jeeps functions that were never used (#1285)
tsteven4 [Wed, 12 Jun 2024 20:54:29 +0000 (14:54 -0600)]
delete obsolete jeeps functions that were never used (#1285)

since introduction in 2002.

21 months agoupdate macos release to Qt 6.5.3 (#1284)
tsteven4 [Wed, 5 Jun 2024 22:41:10 +0000 (16:41 -0600)]
update macos release to Qt 6.5.3 (#1284)

21 months agorefactor interface to jeeps pvt related commands. (#1283)
tsteven4 [Thu, 23 May 2024 15:55:06 +0000 (09:55 -0600)]
refactor interface to jeeps pvt related commands. (#1283)

21 months agofix xcsv RECORD_DELIMITER CR. (#1282)
tsteven4 [Mon, 20 May 2024 14:12:52 +0000 (08:12 -0600)]
fix xcsv RECORD_DELIMITER CR. (#1282)

22 months agoadd Qt's webengine translations to package. (#1277)
tsteven4 [Sun, 5 May 2024 22:36:31 +0000 (16:36 -0600)]
add Qt's webengine translations to package. (#1277)

22 months agotidy readability-convert-member-functions-to-static (#1276)
tsteven4 [Sat, 4 May 2024 21:39:21 +0000 (15:39 -0600)]
tidy readability-convert-member-functions-to-static (#1276)

22 months agoclang-tidy modernize-loop-convert (#1275)
tsteven4 [Sat, 4 May 2024 17:53:36 +0000 (11:53 -0600)]
clang-tidy modernize-loop-convert (#1275)

22 months agoclang-tidy readability-isolate-declaration (#1274)
tsteven4 [Sat, 4 May 2024 16:48:07 +0000 (10:48 -0600)]
clang-tidy readability-isolate-declaration (#1274)

22 months agoMove floor to Qt 6.2 (#1272)
tsteven4 [Sat, 4 May 2024 15:53:15 +0000 (09:53 -0600)]
Move floor to Qt 6.2 (#1272)

* move floor from Qt 5.15 to 6.2.

* fix some CI failures

* try harder to fix coverage build

* try to fix coverage again

* try agin

* move up msvc tools minimum for Qt6

* clean up clazy warnings with Qt6.

* drop redundnant CI job

* revert translation related unintentionl changes

* simplify find qt packages

* assume Qt6 in textstream

* move CI tidy to noble

* assume Qt6 in textstream.h

* remove obsolete makesetup.bat

* remove Qt5 support from coretool

* strip Qt5 from noble image

* update default qt versions.

* update minimum cmake version to match Qt 6.2.4 QT_SUPPORTED_MIN_CMAKE_VERSION_FOR_USING_QT

* assume QHash result is type size_t

* remove unnecessary qOverloads (in Qt6).

22 months agoadd Ubuntu noble to CI (#1273)
tsteven4 [Sat, 27 Apr 2024 19:35:28 +0000 (13:35 -0600)]
add Ubuntu noble to CI (#1273)

* add ubuntu noble docker support

* update qt6 packages for noble.

noble has some new qt6 packages that alleviate the need to
directly install some libraries.
also, the dependencies of some qt6 packages have been improved
allowing us to specify what we use more directly.
this results in the same set of packges being installed.

* remove dependent qt5 package

* add noble to CI

22 months agoadd fedora 40 to CI (#1270)
tsteven4 [Tue, 23 Apr 2024 21:54:49 +0000 (15:54 -0600)]
add fedora 40 to CI (#1270)

22 months agosupport builds with shapelib (as documented). (#1268)
tsteven4 [Thu, 18 Apr 2024 11:34:22 +0000 (05:34 -0600)]
support builds with shapelib (as documented). (#1268)

22 months agoupdate libusb to 1.0.27 (#1259)
tsteven4 [Tue, 16 Apr 2024 14:09:53 +0000 (08:09 -0600)]
update libusb to 1.0.27 (#1259)

22 months agowork around homebrew python linking issues (#1267)
tsteven4 [Tue, 16 Apr 2024 13:35:04 +0000 (07:35 -0600)]
work around homebrew python linking issues (#1267)

* debug python brew issues

* dbg2

* dbg3

* dbg4

* insulate workflow from homebrew location.

22 months agoAdd test coverage for ozi color setting options. (#1266)
GPSBabel [Sun, 14 Apr 2024 08:12:11 +0000 (03:12 -0500)]
Add test coverage for ozi color setting options. (#1266)

* Unit test ozi color commandline options.

Improves test coverage.

Co-authored-by: Robert Lipe
23 months agoupdate macos github workflow (#1265)
tsteven4 [Thu, 11 Apr 2024 12:24:55 +0000 (06:24 -0600)]
update macos github workflow (#1265)

* update github macos runners.

macos-11 runner is now deprecated.

* update xcode versions for github

* update XML_CATALOG_FILES for macos-14 runner

* work around macos-14 runner brew locations

* find homebrew gsed on apple silicon

* generalize brew location detection in macos workflow

* update python version for arm availability

* push xcode versions to latest minor levels.

2 years agoclang tidy 18 fixes readability-redundant-casting (#1262)
tsteven4 [Fri, 8 Mar 2024 18:42:01 +0000 (11:42 -0700)]
clang tidy 18 fixes readability-redundant-casting (#1262)

2 years agoupdate zlib to 1.3.1 (#1258)
tsteven4 [Wed, 7 Feb 2024 21:57:17 +0000 (14:57 -0700)]
update zlib to 1.3.1 (#1258)

* update zlib to 1.3.1

* delete extra zlib files

2 years agoupdate shapelib to 1.6.0 (#1257)
tsteven4 [Thu, 25 Jan 2024 16:14:44 +0000 (09:14 -0700)]
update shapelib to 1.6.0 (#1257)

2 years agoBump actions/cache from 3 to 4 (#1256)
dependabot[bot] [Wed, 24 Jan 2024 17:42:05 +0000 (10:42 -0700)]
Bump actions/cache from 3 to 4 (#1256)

Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agoupdate codacy badge (#1251)
tsteven4 [Sat, 23 Dec 2023 14:22:07 +0000 (07:22 -0700)]
update codacy badge (#1251)

2 years agoupdate codeql workflow template (#1250)
tsteven4 [Mon, 18 Dec 2023 17:13:36 +0000 (10:13 -0700)]
update codeql workflow template (#1250)

2 years agoBump actions/upload-artifact from 3 to 4 (#1249)
dependabot[bot] [Mon, 18 Dec 2023 16:52:23 +0000 (09:52 -0700)]
Bump actions/upload-artifact from 3 to 4 (#1249)

Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agoBump github/codeql-action from 2 to 3 (#1248)
dependabot[bot] [Mon, 18 Dec 2023 16:02:24 +0000 (09:02 -0700)]
Bump github/codeql-action from 2 to 3 (#1248)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agomodernize google maps javascript (#1247)
tsteven4 [Mon, 18 Dec 2023 13:17:09 +0000 (06:17 -0700)]
modernize google maps javascript (#1247)

to avoid:
"js: Google Maps JavaScript API has been loaded directly without a callback. This is not supported and can lead to race conditions and suboptimal performance. For supported loading patterns please see https://goo.gle/js-api-loading"

2 years agoremove CMakeSettings.json (#1246)
tsteven4 [Sat, 16 Dec 2023 15:20:43 +0000 (08:20 -0700)]
remove CMakeSettings.json (#1246)

which had machine specific windows configuration values.

2 years agoBump actions/setup-python from 4 to 5 (#1245)
dependabot[bot] [Mon, 11 Dec 2023 15:26:12 +0000 (08:26 -0700)]
Bump actions/setup-python from 4 to 5 (#1245)

Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agomake xmlgeneric a class (#1244)
tsteven4 [Thu, 30 Nov 2023 12:40:13 +0000 (05:40 -0700)]
make xmlgeneric a class (#1244)

* make xmlgeneric a class.

* encapsulate more of xmlgeneric

* use scoped enum

* encapsulate a bit more.

* retire xg_string type

* use scoped enums

* rule of zero applied to xmlgeneric class.

* remove test code

2 years agofix errors in gpi writer related to bitmaps. (#1243)
tsteven4 [Thu, 23 Nov 2023 14:22:05 +0000 (07:22 -0700)]
fix errors in gpi writer related to bitmaps. (#1243)

Erroneous warnings "garmin_gpi: Code error in load_bitmap_from_file,
expected output size 1060, actual output -28."

Corrupted colors when input bitmap has 24 bits per pixel.

2 years agobring static functions into googltakeout class. (#1240)
tsteven4 [Thu, 23 Nov 2023 13:24:49 +0000 (06:24 -0700)]
bring static functions into googltakeout class. (#1240)

and other tidy modernizations.

2 years agostraggling nits (#1236)
tsteven4 [Mon, 20 Nov 2023 18:01:17 +0000 (11:01 -0700)]
straggling nits (#1236)

* actually quit using gpsfmt.h

* use auto

* empty statements

* join declaration and assignment

* fix tab

* make member funct static

* delete renamed prototypes

* const pointers

* more const pointers

* empty statements

2 years agomisc cleanups (#1235)
tsteven4 [Sun, 19 Nov 2023 13:00:31 +0000 (06:00 -0700)]
misc cleanups (#1235)

2 years agosimplify usage of homebrew on CI macos-11. (#1234)
tsteven4 [Sun, 19 Nov 2023 02:36:42 +0000 (19:36 -0700)]
simplify usage of homebrew on CI macos-11. (#1234)

homebrew installs are taking an extreme amount of time on macos-11,
with the following message:
  Warning: You are using macOS 11.
  We (and Apple) do not provide support for this old version.
  It is expected behaviour that some formulae will fail to build in this old version.
  It is expected behaviour that Homebrew will be buggy and slow.
To alleviate this pain skip the installation of jing and all it's
dependencies on macos-11.

2 years agoretire LegacyFormat class. (#1233)
tsteven4 [Sun, 19 Nov 2023 02:07:36 +0000 (19:07 -0700)]
retire LegacyFormat class. (#1233)

2 years agoconvert mtk formats to Format class. (#1226)
tsteven4 [Sun, 19 Nov 2023 01:42:53 +0000 (18:42 -0700)]
convert mtk formats to Format class. (#1226)

2 years agoconvert ozi to Format class. (#1232)
tsteven4 [Sun, 19 Nov 2023 01:18:04 +0000 (18:18 -0700)]
convert ozi to Format class. (#1232)

* convert ozi to Format class.

There is a subtle difference in the writer, the index is now
reset for every invocation.  This only matters if the writer is
used more than once. I believe this was the intent.

* fool with QIODevice and it's inheritence of QIODeviceBase.

2 years agoconvert garmin_txt to Format class (#1231)
tsteven4 [Sun, 19 Nov 2023 00:49:24 +0000 (17:49 -0700)]
convert garmin_txt to Format class (#1231)

* convert garmin_txt to Format class

* fix includes for qt5

2 years agoconvert garmin_xt to Format class (#1230)
tsteven4 [Sat, 18 Nov 2023 23:28:47 +0000 (16:28 -0700)]
convert garmin_xt to Format class (#1230)

2 years agoconvert tpg to dynamic Format class. (#1229)
tsteven4 [Sat, 18 Nov 2023 22:16:01 +0000 (15:16 -0700)]
convert tpg to dynamic Format class. (#1229)

2 years agoconvert gtm to Format class. (#1228)
tsteven4 [Sat, 18 Nov 2023 21:47:09 +0000 (14:47 -0700)]
convert gtm to Format class. (#1228)

2 years agoconvert v900 to dynamic Format class. (#1227)
tsteven4 [Sat, 18 Nov 2023 21:08:26 +0000 (14:08 -0700)]
convert v900 to dynamic Format class. (#1227)

2 years agoconvert tpo formats to Format class (#1225)
tsteven4 [Sat, 18 Nov 2023 13:59:38 +0000 (06:59 -0700)]
convert tpo formats to Format class (#1225)

* convert tpo to Format class.

* capture comments

2 years agofix leak in jeeps serial comm on posix. (#1223)
tsteven4 [Thu, 16 Nov 2023 21:30:05 +0000 (14:30 -0700)]
fix leak in jeeps serial comm on posix. (#1223)

see #1221

2 years agoconvert garmin to Format class (#1222)
tsteven4 [Thu, 16 Nov 2023 21:00:59 +0000 (14:00 -0700)]
convert garmin to Format class (#1222)

* convert garmin to format class.

* add new file garmin.h

* make some member fns static.

* init member var

2 years agoastyle jeeps included files (#1219)
tsteven4 [Wed, 15 Nov 2023 18:29:55 +0000 (11:29 -0700)]
astyle jeeps included files (#1219)

2 years agogpsmath isolation (#1218)
tsteven4 [Wed, 15 Nov 2023 17:36:59 +0000 (10:36 -0700)]
gpsmath isolation (#1218)

gpsmath/gpsdatum/gpsproj don't have dependencies
on the rest of jeeps.

cleanup typedefs, macros, const tables.

2 years agouse c++11 fixed width integer types in jeeps. (#1217)
tsteven4 [Wed, 15 Nov 2023 14:27:00 +0000 (07:27 -0700)]
use c++11 fixed width integer types in jeeps. (#1217)

* use c++11 fixed width integer types in jeeps.

thanks resharper!

* fix fixed width integers resharper missed.

in non windows code.

2 years agouse uniform header guards in jeeps. (#1216)
tsteven4 [Tue, 14 Nov 2023 14:36:58 +0000 (07:36 -0700)]
use uniform header guards in jeeps. (#1216)

and
delete an obsolete prototype.
rename jgpsutil.cc now that it doesn't conflict with a format.

2 years agojeeps function pointers, GPS_PPacket const correctness, GPS_Serial_[OSP]Packet -...
tsteven4 [Mon, 13 Nov 2023 23:33:14 +0000 (16:33 -0700)]
jeeps function pointers, GPS_PPacket const correctness, GPS_Serial_[OSP]Packet -> GPS_Serial_Packet (#1215)

* use using for jeeps function prototypes.

* const correctness wrt GPS_PPacket.

The important bit here is in gpssend.cc, Build_Serial_Packet used to rececive a 1KB packet by copy, now it is by const reference.

* delete accidentally committed file.

* rename GPS_PPacket -> GPS_Packet.

original jeeps used GPS_SXXX, GPS_OSXXX, GPS_PXXX for the structure
tag, a typedef of the structure, and a pointer to a typedef of the
structure.  In the case of GPS_PPacket this convention was no longer
followed.

* change GPS_Packet back to a structure.

* try harder to change GPS_Packet back to a struct.

* clean up GPS_Serial_[SOP]Packet.

* catch some missed renames up.

clion on linux missed some windows only renames.

2 years agoclang tidy fixes (#1214)
tsteven4 [Sun, 12 Nov 2023 13:28:18 +0000 (06:28 -0700)]
clang tidy fixes (#1214)

* fix tidy readability-named-parameter

* fix readability-named-parameter fix

* fix some readability-inconsistent-declaration-parameter-name tidy warnings.

* update tidy script to

ignore strptime
ignore third party headers
clean build directory
generate summary

* update git ignores

2 years agomisc cleanups (#1213)
tsteven4 [Fri, 10 Nov 2023 21:14:56 +0000 (14:14 -0700)]
misc cleanups (#1213)

initialize garmin_fs class member.
catch gui up with Qt 5.15 floor.
rename tidy build directory.

2 years agomake qstarz format dynamic (#1212)
tsteven4 [Thu, 9 Nov 2023 15:00:03 +0000 (08:00 -0700)]
make qstarz format dynamic (#1212)

2 years agoadd fedora 39 to ci (#1211)
tsteven4 [Thu, 9 Nov 2023 01:40:36 +0000 (18:40 -0700)]
add fedora 39 to ci (#1211)

* add fedora 39 to ci

* retire qAsConst for std::as_const

2 years agoconvert vcf to dynamic Format. (#1210)
tsteven4 [Thu, 9 Nov 2023 00:43:17 +0000 (17:43 -0700)]
convert vcf to dynamic Format. (#1210)

2 years agorefactor garmin_fs class (#1203)
tsteven4 [Wed, 1 Nov 2023 13:16:44 +0000 (07:16 -0600)]
refactor garmin_fs class (#1203)

* use container for garmin_fs ilinks.

and leave memory management up to the copy on write container.

* make gmsd const for read only usage.

this prevents the possiblity of detachment of the ilinks list.

* incorporate some variables and functions into garmin_fs_t

* unify garmin category conversions.

* fiddle with test time zone sensitivity.

* add utc option for garmin_txt reader.

* correct sign of adjustment

* update garmin_txt includes.

2 years agoconvert garmin_fs functions from char* -> QString (#1202)
tsteven4 [Mon, 30 Oct 2023 15:46:07 +0000 (09:46 -0600)]
convert garmin_fs functions from char* -> QString (#1202)

* convert garmin_fs functions from char* -> QString.

* update comment

* make tag_type a class enum

* update garmin_fs includes

2 years agoconsolidate handling of extensions in gpx writer. (#1200)
tsteven4 [Mon, 30 Oct 2023 00:35:42 +0000 (18:35 -0600)]
consolidate handling of extensions in gpx writer. (#1200)

This is a user visible change.

Previously if gARmIN sPECIAL dATA existed and both garminextensions
and humminbirdextensions were false then the gpx writer would
write a subset if it (and not passthrough any gpx -> gpx data.)
If gARmIN sPECIAL dATA existed and either extension option was true,
then a different subset would be written (and any gpx -> gpx data would
not be passed through.)  Now the garminextensions option must
used to have any gARmIN sPECIAL dATA data written.

Previously, when passing through extension data from the gpx reader to
the gpx writer, some elements of the garmin and humminbird extensions
were not included. Now, all foreign elements are included. As before,
passthrough is only used when both extension options are false.

2 years agoDevelop igc options (#1180)
PacketFiend [Sat, 28 Oct 2023 18:17:51 +0000 (14:17 -0400)]
Develop igc options (#1180)

* Individual options for IGC extensions

* Remove unused var, address compiler complaint

* Minor cleanup

* Remove ALL and EVERY options, make defaults more obvious

* Simplify debug code, refactor maps, add test cases (<--tseven4 patch)

* Make QT5 happy

* capture serialization usage.txt file verbatim.

---------

Co-authored-by: tsteven4 <13596209+tsteven4@users.noreply.github.com>
2 years agomove Qt floor from 5.12 to 5.15 (#1199)
tsteven4 [Sat, 28 Oct 2023 11:41:58 +0000 (05:41 -0600)]
move Qt floor from 5.12 to 5.15 (#1199)

* move Qt floor to 5.15.

* fix focal, coverage, windows 32 bit builds.

* try harder to fix coverage build

* fix codeql build

* kill fedora 32 CI build which uses Qt 5.14.

2 years agosupport optional start elements in xmlstreamwriter. (#1193)
tsteven4 [Fri, 27 Oct 2023 20:07:24 +0000 (14:07 -0600)]
support optional start elements in xmlstreamwriter. (#1193)

this adds methods to xmlstreamwriter to allow conditional writing
of a start element.  The conditional element will only be written to
the stream if it has children, which is deteremined when the condtional
element is ended.  This simplifies writing of such elements as the
writer does not need to know if it will subsequently write children or
not.

2 years agoremove gpx reader support for probelmatic extensions. (#1198)
tsteven4 [Fri, 27 Oct 2023 17:08:38 +0000 (11:08 -0600)]
remove gpx reader support for probelmatic extensions. (#1198)

1. groundspeak is generally used with gpx 1.0.  Our attempt to
support it with gpx 1.1 required schema violations.

2. opencaching.de no longer uses the geocache element.  Our
implementation required schema violations.

2 years agofix bugs with gpx passthrough. (#1197)
tsteven4 [Thu, 26 Oct 2023 23:24:23 +0000 (17:24 -0600)]
fix bugs with gpx passthrough. (#1197)

with gpx 1.0, any extension data that was a child of rte or trk
was lost.  I beleive this used to work but has been broken for quite
a while.

with gpx 1.0 extension data that was a child of gpx could be
erroneously rewritten as part of the final wpt/rtept/trkpt.

with gpx 1.1 extension data that was a chile of trkseg could be
erroneously rewritten as part of the final wpt/rtept/trkpt.

I note we currently drop any extension data that is a child of gpx,
,a child of trkseg, or a child of metadata.

2 years agoUpdate (now archived) Oozy Rat from Geocaching.com in 2023 (#1196)
GPSBabel [Thu, 26 Oct 2023 02:19:55 +0000 (21:19 -0500)]
Update (now archived) Oozy Rat from Geocaching.com in 2023 (#1196)

* Update (now archived) Oozy Rat from Geocaching.com in 2023

* Replace GCGCA* (Ooozy Rat) with 2023 version from Groundspeak.

* Regenerate all reference files.

* Nail TZ in geocache logs in text, html to GMT.

This has been a problem that's plagued geocaching apps forever

---------

Co-authored-by: Robert Lipe <robertlipe@gmail.com>
2 years agoenhance gpx test to validate gpx writer. (#1191)
tsteven4 [Mon, 23 Oct 2023 17:57:37 +0000 (11:57 -0600)]
enhance gpx test to validate gpx writer. (#1191)

* enhance gpx test to validate gpx writer.

this reveals our writer producing a schema violation, an exception
is made to avoid testing with this input.  The exception should
be removed when we fix the gpx writer.

* fix write order of gpx elements we just pass through.

* collapse writing of waypoint elements common to wpts, rtepts, trkpts.

* fiddle

* more fiddling

2 years agorc1 for release 1.9.0 (#1186)
tsteven4 [Sat, 30 Sep 2023 16:51:46 +0000 (10:51 -0600)]
rc1 for release 1.9.0 (#1186)

2 years agoarchive docs in CI (#1187)
tsteven4 [Sat, 30 Sep 2023 16:26:23 +0000 (10:26 -0600)]
archive docs in CI (#1187)

* create document generation workflow

* fix webdocdir bug

* update checkout

* update document for cmake variable renames.

2 years agobump qt build from 6.5.2 to 6.5.3 (#1185)
tsteven4 [Fri, 29 Sep 2023 14:16:22 +0000 (08:16 -0600)]
bump qt build from 6.5.2 to 6.5.3 (#1185)

2 years agoRemove final remnants of 'exported' (#1146)
tsteven4 [Mon, 25 Sep 2023 13:48:19 +0000 (07:48 -0600)]
Remove final remnants of 'exported' (#1146)

* Remove final remnants of 'exported'

* incorporate review comments in duplicate filter,

and remove deleted exported keyword from unicsv doc.

---------

Co-authored-by: Robert Lipe <robertlipe@gmail.com>
2 years agotidy fixes (#1179)
tsteven4 [Fri, 15 Sep 2023 00:09:56 +0000 (18:09 -0600)]
tidy fixes (#1179)

* tidy readability-convert-member-functions-to-static

* tidy readability-make-member-function-const

* kill trailing space

2 years agofix various "Redundancies in code" (#1178)
tsteven4 [Thu, 14 Sep 2023 13:43:55 +0000 (07:43 -0600)]
fix various "Redundancies in code"  (#1178)

* fix "Redundant elaborted type specifier"

* fix "Redundant 'inline' specifier"

* fix "redundant 'const' specifier on a constexpr variable"

* remove "Redundant qualifier"

* add /out/, /.vs/ to .gitignore, and sort.

2 years agofix SchemaArrayField/SchemaArrayData mismatch (#1177)
tsteven4 [Thu, 14 Sep 2023 12:54:38 +0000 (06:54 -0600)]
fix SchemaArrayField/SchemaArrayData mismatch (#1177)

* fix SchemaArrayField/SchemaArrayData mismatch

related to IGC additions from #1060 and #1054.

* retire global trait collection

* use class member to store track traits instead of fs data.

* fiddle with kml accumlate hash

* compute number of wp_fields

* correct bug concerning track specific traits.

* simplify multi-track array decisions.

* simplify kml multi-track schema decisions.

2 years agoIntegrate OAT and SIU with Waypoints (#1060)
PacketFiend [Tue, 12 Sep 2023 11:28:55 +0000 (07:28 -0400)]
Integrate OAT and SIU with Waypoints (#1060)

* Integrate OAT and SIU with Waypoints

* Type corrections, convert set_value() overload to nullptr* check

* #1062 Fix core dump when merging tracks with disparate IGC extensions

* Reduce `value` variable scope when writing SimpleArrays

* Debug oopsie bugfix, fix core dump when merging IGC files with no extensions

* Collapse redundant if statement

* Fix brain fart

* Eliminate igc_fsdata::has_value()

* Fix subtle satellite count bug

* Fix small sat count bug, and eliminate some ifdefs

* Make some IGC exts override default WP members

* Include IGC line-by-line debug info

* Remove accidentally included file

* delete obsolete macros

---------

Co-authored-by: tsteven4 <13596209+tsteven4@users.noreply.github.com>